package cn.lg.soar.core.enums;

import cn.lg.soar.common.annotations.DictDefine;
import cn.lg.soar.common.data.dict.IDict;
import com.baomidou.mybatisplus.annotation.IEnum;

/**
 * @author luguoxiang 469599794@qq.com
 * @Date: 2024/9/30 17:26
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@DictDefine(name = "日志级别枚举")
public enum LoggerLevelEnum implements IDict<Integer>, IEnum<Integer> {

    /**
     * 输出所有级别的日志
     */
    ALL("全部(全部)", 0),
    /**
     * 最细粒度的日志，用于追踪程序详细流程
     */
    TRACE("追踪(TRACE)", 1),
    /**
     * 用于调试信息，开发/测试阶段使用
     */
    DEBUG("调试(DEBUG)", 2),
    /**
     * 正常运行时的关键信息
     */
    INFO("信息(INFO)", 3),
    /**
     * 潜在问题，但不影响运行
     */
    WARN("警告(WARN)", 4),
    /**
     * 出现错误事件，影响正常流程
     */
    ERROR("错误(ERROR)", 5),
    /**
     * 不输出任何日志
     */
    OFF("关闭(OFF)", 6),
    ;
    LoggerLevelEnum(String label, int value){
        this.label = label;
        this.value = value;
    }

    private final String label;
    private final int value;
    @Override
    public Integer getValue() {
        return this.value;
    }
    @Override
    public String getLabel() {
        return this.label;
    }

}
